(symbols "javaClasses" 'pico)

(local *ObjectClass)

(setq *ObjectClass
  (javaClass "java.lang.Object") )

(de pico~javaClasses (Class)
  (trim
    (make
      (until (or (not Class)
               (= *ObjectClass Class) )
        (when Class
          (link Class) )
        (mapc 'link
          (arrayAsList
            (java Class "getInterfaces") ) )
        (setq Class
          (java Class "getSuperclass") ) )
      (link *ObjectClass) ) ) )